1. Field of the Invention
The present invention relates generally to computer systems and more particularly to a software architecture for implementing specific purpose rule-based n-bit virtual machines to accomplish such tasks as data typing, encryption, compression, arbitrary precision arithmetic, pattern recognition, data conversion, artificial intelligence, device drivers, data storage and retrieval and digital communications.
2. Description of the Related Art
Existing systems designed to process data vary widely in their specific implementations. However, few are designed for the utilization of a rule-base and there are no others known that use, as their primary data type, an arbitrary X number of bits as input, and an arbitrary Y number of bits as output, where X may or may not be equal to Y.
With respect to virtual software machines, of specific mention is U.S. Pat. No. 4,961,133 filed Oct. 2, 1990, wherein Talati et al. disclose a "Virtual Execution Environment on a Target Computer Using a Virtual Software Machine". This invention deals with preprocessing and compiling source program code in such a way as to be operating system independent and to enable the code to execute across heterogeneous computers via a virtual interface system. Though the invention disclosed by Talati et al. involves providing a virtual software machine, it does not address the problem of directly manipulating machine instructions of any given n-bit length via a rule-base to machine instructions of any target n-bit length on a target machine.
With respect to data encryption, most systems apply some form of mathematical operation or bit-wise operation, such as exclusive-or (or XOR) against the input data to be processed based upon an encryption key or password. Normally, the encryption process is highly specialized, encrypting the data in the same theoretical manner from the beginning to the end of the data stream. These methods lend themselves to differential crypto-analysis, a method capable, through analytical means, of deciphering the encrypted message.
Of specific mention is Matasuzaki et al. U.S. Pat. No. 5,351,299 filed Sep. 27, 1994, whose encryption process is very difficult or impractical to break with more standard analytical methods. This method utilizes the standard idea of XORing data together by use of manipulation of a user-provided password. To decrypt, one XORs the encrypted data again, in reverse order, with the same manipulation of the same user-provided password.
Though Matasuzaki et al. break data up into N blocks of M-bit data, the specified Embodiment I states that "each bit outputted from hash function unit is dependent on all the bits inputted thereto." It also states in the embodiments that the primary input blocks are blocks of multiples of 8 bits, and further broken down into blocks of M bits, defined in 8 bits or multiples of 8 bits. This method severely limits introduction of arbitrary block encryption rules and does not allow for a prime number of bits, such as 11 or 13.
The U.S. Pat. No. 5,285,497 to Thatcher Jr. filed Feb. 8, 1994, specifies encoding variable length Huffman encoded bits in a unique way. However, it does not address the bits as a data type arbitrarily, but in a form having a meaning directed by the Huffman compression means. The invention also requires the use of a specialized microprocessor, a fixed number of specialized encryption rules, and is specific to compressed, digital data streams.
Another unique encryption means as stated in U.S. Pat. No. 5,097,504 to Camion et al. identifies a signature based encryption means where the signature is recorded with the encrypted message and the encryption keys are stored on another, preferably inviolable, medium. This system applies a highly mathematical and specific encryption means, introducing, again, the problem and limitation of not having a flexible and rather arbitrary rule-base that is easily changeable and modifiable.
In U.S. Pat. No. 5,321,749, Virga presents an extremely unique encryption means that converts the input data into a bitmap and encrypts the bitmap to be targeted for decryption in an optical scanning device. The embodiment specifies XORing randomly generated bits produced from a user-specified password with the encoded bitmap. The bitmap is then converted to specific visual alphabet that can be easily recognized by a receiving scanning device. This method, however, allows an analytical hashing means to decipher the seed(s) generated from the user-specified password with a relatively small amount of time.
With respect to compression, there are many means of compression, all of them having the primary objective of locating the most common occurring data types and encoding them, on average, with a data type of a smaller size.
As an example, suppose the input data is comprised of the characters "ABCAB". A compression means may locate the most commonly occurring character pair, "AB", and encodes them with a single character "Z", thereby reducing the input data to ZCZ.
Though the above is an extremely simple example, the many compression means in existence today vary widely and have many implementations in hardware and software. However varying these compression means may be, a primary limitation exists for all of them. The limitation is that when compression has been achieved by use of the desired compression means, the data can no longer be compressed. This is due to the fact that the compressed output of the data results in a distribution of the input data type such that there is no longer a character or set of characters that occurs more frequently than another character or set of characters. Therefore, further compression is not possible or practical and some compression means will actually explode the size of the input data if the distribution of the characters of the input data type is relatively constant.
With respect to arbitrary precision arithmetic, many algorithms have been written to overcome the limitations of a computer to provide very high levels of precision in mathematical calculations. Though these methods can and do provide any desired precision with mathematical calculations, the calculations are performed algorithmically with the requirement to overcome the internal 8, 16, 32, or 64-bit limitations of the computer's hardware and internal memory mapping. These algorithms require a very high CPU load, demanding much of the computer's internal resources.
With respect to pattern recognition and data conversion, the invention disclosed herein provides enhancement to existing means of the same, introducing arbitrary data typing and a user-defined rule-base, the combination of which is absent in current systems.
In U.S. Pat. No. 5,321,606 filed Jun. 14, 1994, Kuruma et al. describe a user-defined set of transformation rules that define the nature of the grammar of the input data to be converted. The invention solves the problem of writing a specific parser or compiler where the limitations rely upon a specific grammar existent in the input data and a specific output term in the output data. Yet, this invention specifies that the output involves "structures of output terms in association with terminal symbols and nonterminal symbols".
In U.S. Pat. No. 4,890,240 filed Dec. 26, 1989, Loeb et al. describe a rule-based, artificial intelligence system where the rules are specifically defined in two parts, a left-hand side and a right-hand side; whereas, the left-hand side is considered an "if" statement and the right-hand side is considered a "then" statement. This invention is specific to overcoming prior problems in RETE processing and not to arbitrary pattern matching and identification with an externally provided rule-base.
U.S. Pat. No. 5,038,296 filed Aug. 6, 1991, U.S. Pat. No. 5,084,813 filed Jan. 28, 1992, and U.S. Pat. No. 5,101,491 filed Mar. 31, 1992 all refer to rule-based systems for generating program code. Though one of the objectives of the present invention is data transformation of program code from one n-bit machine instruction via an externally provided rule-base to a different n-bit machine instruction, it is not directed at code generation and the invention disclosed herein is not limited as such.